package com.fowo.api.model.nav.sell.order.fba;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** 订单管理第三方仓发货 导入导出辅助模型 */
@Getter
@Setter
public class NavSellOrderFBAExcelPo {

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "系统单号")
  private String orderId;

  @NotNull(message = "店铺不能为空")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*店铺")
  private String shopInfoShopName;

  @ExcelIgnore
  @ExcelProperty(value = "*店铺")
  private Long shopInfo;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "币种")
  private String currency;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单类型")
  private String type;

  @NotBlank(message = "状态不能为空")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*状态")
  private String status;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "站点")
  private String siteName;

  @ExcelIgnore
  @ExcelProperty(value = "站点")
  private Long site;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单标签")
  private String tag;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单来源")
  private String source;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "拆分订单类型")
  private String splitType;

  @Size(max = 2048, message = "客服备注长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "客服备注")
  private String remark;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "支付方式")
  private String paymentWay;

  @Size(max = 50, message = "买家姓名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "买家姓名")
  private String buyerName;

  @Size(max = 50, message = "买家邮箱长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "买家邮箱")
  private String buyerEmail;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "客选物流")
  private String deliveryLogisticsLabel;

  @ExcelIgnore
  @ExcelProperty(value = "客选物流")
  private Long deliveryLogistics;

  @Size(max = 2048, message = "买家留言长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "买家留言")
  private String buyerLeaveWord;

  @Size(max = 50, message = "收件人长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "收件人")
  private String deliveryReceipt;

  @Size(max = 50, message = "邮编长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "邮编")
  private String deliveryZipCode;

  @Size(max = 50, message = "电话长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "电话")
  private String deliveryPhone;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "国家/地区")
  private String deliveryCountryCountry;

  @ExcelIgnore
  @ExcelProperty(value = "国家/地区")
  private Long deliveryCountry;

  @Size(max = 50, message = "省/州长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "省/州")
  private String deliveryProvince;

  @Size(max = 50, message = "城市长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "城市")
  private String deliveryCity;

  @Size(max = 50, message = "区/县长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "区/县")
  private String deliveryArea;

  @Size(max = 50, message = "门牌号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "门牌号")
  private String deliveryHouseNumber;

  @Size(max = 50, message = "公司名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "公司名")
  private String deliveryCompany;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "地址类型")
  private String deliveryAddressType;

  @Size(max = 50, message = "详细地址1长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "详细地址1")
  private String deliveryAddress1;

  @Size(max = 50, message = "详细地址2长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "详细地址2")
  private String deliveryAddress2;

  @Size(max = 50, message = "详细地址3长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "详细地址3")
  private String deliveryAddress3;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发货仓属性")
  private String deliveryWidType;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发货仓库")
  private String deliveryWarehouseName;

  @ExcelIgnore
  @ExcelProperty(value = "发货仓库")
  private Long deliveryWarehouse;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流方式")
  private String deliveryLogisticsChannelLabel;

  @ExcelIgnore
  @ExcelProperty(value = "物流方式")
  private Long deliveryLogisticsChannel;

  @Size(max = 50, message = "运单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "运单号")
  private String deliveryWaybillId;

  @Size(max = 50, message = "跟踪号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "跟踪号")
  private String deliveryTrackId;

  @Size(max = 50, message = "合作伙伴订单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "合作伙伴订单号")
  private String deliveryPartnerOrderId;

  @Size(max = 50, message = "标发单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "标发单号")
  private String deliveryIssuId;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发货方式")
  private String deliveryType;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "发货时间")
  private java.util.Date deliveryTime;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "标发时间")
  private java.util.Date issuTime;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "收件税号类型")
  private String deliveryRecipientTaxType;

  @Size(max = 50, message = "收件人税号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "收件人税号")
  private String deliveryRecipientTaxNo;

  @Size(max = 50, message = "收件人身份证号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "收件人身份证号")
  private String deliveryRecipientIdentityNo;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发件税号类型")
  private String deliverySenderTaxNoType;

  @Size(max = 50, message = "发件人税号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发件人税号")
  private String deliverySenderTaxNo;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "COD订单")
  private String deliveryCodeOrder;

  @ExcelProperty(value = "预估运费")
  private java.math.BigDecimal deliveryThinkFreight;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "估算重量单位")
  private String deliveryThinkWeightUnit;

  @ExcelProperty(value = "估算重量")
  private java.math.BigDecimal deliveryThinkWeight;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "估算尺寸单位")
  private String deliveryThinkSizeUnit;

  @ExcelProperty(value = "估算尺寸长")
  private java.math.BigDecimal deliveryThinkSizeLength;

  @ExcelProperty(value = "估算尺寸宽")
  private java.math.BigDecimal deliveryThinkSizeWidth;

  @ExcelProperty(value = "估算尺寸高")
  private java.math.BigDecimal deliveryThinkSizeHeight;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "预估包裹体积单位")
  private String deliveryThinkVolumeUnit;

  @ExcelProperty(value = "预估包裹体积")
  private java.math.BigDecimal deliveryThinkVolume;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "估算计费重量单位")
  private String deliveryThinkFeeWeightUnit;

  @ExcelProperty(value = "估算计费重量")
  private java.math.BigDecimal deliveryThinkFeeWeight;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "包裹实重单位")
  private String deliveryRealWeightUnit;

  @ExcelProperty(value = "包裹实重")
  private java.math.BigDecimal deliveryRealWeight;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "包裹尺寸单位")
  private String deliveryRealSizeUnit;

  @ExcelProperty(value = "包裹长")
  private java.math.BigDecimal deliveryRealSizeLength;

  @ExcelProperty(value = "包裹宽")
  private java.math.BigDecimal deliveryRealSizeWidth;

  @ExcelProperty(value = "包裹高")
  private java.math.BigDecimal deliveryRealSizeHeight;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "包裹体积单位")
  private String deliveryRealVolumeUnit;

  @ExcelProperty(value = "包裹体积")
  private java.math.BigDecimal deliveryRealVolume;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "实际计费重量单位")
  private String deliveryRealFeeWeightUnit;

  @ExcelProperty(value = "实际计费重量")
  private java.math.BigDecimal deliveryRealFeeWeight;

  @ExcelProperty(value = "包裹数量")
  private Integer deliveryRealQuantity;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流运费币种")
  private String deliveryRealCurrencyCode;

  @ExcelProperty(value = "物流运费")
  private java.math.BigDecimal deliveryRealFreight;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流下单状态")
  private String deliveryStatus;

  @Size(max = 50, message = "物流下单消息长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流下单消息")
  private String deliveryMessage;

  @Size(max = 50, message = "物流备注长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流备注")
  private String deliveryRemark;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "审核时间")
  private java.util.Date processTime;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "配货时间")
  private java.util.Date distributionTime;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "打单时间")
  private java.util.Date pickingTime;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "尾款时间")
  private java.util.Date tailTime;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "截单状态")
  private String cutStatus;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "配货状态")
  private String distributionStatus;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "面单打印")
  private String printFaceStatus;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单打印")
  private String printOrderStatus;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否验货")
  private String isTest;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否称重")
  private String isWeigh;

  @Size(max = 50, message = "销售出库单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "销售出库单号")
  private String woNumber;

  @ExcelProperty(value = "销售出库单Id")
  private Long wmsOrderId;

  @ExcelProperty(value = "批次号")
  private Long boxId;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "发货时间")
  private java.util.Date pickingDeliveryTime;

  @Size(max = 50, message = "批次号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "批次号")
  private String batchId;

  @Size(max = 50, message = "物流商长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流商")
  private String providerName;
}
